from PIL import Image,UnidentifiedImageError

import imagehash
import base64

def get_img_print(file_name):
    try:
        img = Image.open(file_name)
    except UnidentifiedImageError:
        return None
    return imagehash.dhash(img)


def get_error_hash():
    return imagehash.dhash("error".encode('base64'))


def hamm_img(file_name, target_file_name):
    """
    汉明距离，汉明距离越小说明越相似，等 0 说明是同一张图片，大于10越上，说明完全不相似
    :param file_name: 主文件
    :param target_file_name: 目标文件
    :return:
    """
    str1 = str(file_name)  # 转成 str
    str2 = str(target_file_name)
    num = 0  # 用来计算汉明距离
    for i in range(len(str1)):
        if str1[i] != str2[i]:
            num += 1
    return num


# if __name__ == '__main__':
#     print(get_img_print('D:/data/Street/美腿/0_001.jpg'))
